package com.shujia.bigdata.task;

import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.net.Socket;

public class Master {

    /**
     * 发送端
     *
     * @param args
     * @throws Exception
     */

    public static void main(String[] args) throws Exception {

        //初始化线程对象
        Task task = new Task();


        /**
         * 将task通过网络发送到数据所在的节点中执行
         *
         */

        Socket master = new Socket("localhost", 8888);

        //获取输出流
        OutputStream outputStream = master.getOutputStream();

        //将字节流转换成对象流
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);

        //将task对象发送出去
        objectOutputStream.writeObject(task);
        objectOutputStream.flush();

        objectOutputStream.close();

        master.close();


    }
}

/**
 * 一个类的对象如果需要在网络里面传输需要实现Serializable接口
 * <p>
 * Serializable只启动标记的作用
 * <p>
 * <p>
 * ’网络连接的对象‘不能在网络里面传输
 */

class Task extends Thread implements Serializable {
    @Override
    public void run() {

        for (int i = 0; i < 100; i++) {
            System.out.println("task正在执行" + i);
        }
    }
}
